package com.example.micro_property_springboot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 资产申请表
 */

@Data
@TableName("asset_apply")
public class AssetApply {
    // 资产申请id
    @TableId(type = IdType.AUTO)
    @NotNull(message = "资产申请id不能为空")
    private Long id;

    // 资产申请单号
    @NotNull(message = "资产申请单号不能为空")
    @TableField("apply_no")
    private String applyNo;

    // 资产id
    @NotNull(message = "资产id不能为空")
    @TableField("asset_id")
    private Long assetId;

    //申请人id
    @NotNull(message = "申请人id不能为空")
    @TableField("apply_user_id")
    private Long applyUserId;

    // 申请部门id
    @NotNull(message = "申请部门id不能为空")
    @TableField("apply_dept_id")
    private Long applyDeptId;

    //原因
    @NotNull(message = "原因不能为空")
    @TableField("reason")
    private String reason;

    //预计归还日期
    @NotNull(message = "预计归还日期不能为空")
    @TableField("expect_return_date")
    private LocalDate expectReturnDate;

    //审批人id
    @NotNull(message = "审批人id不能为空")
    @TableField("approve_user_id")
    private Long approveUserId;

    //审批状态
    @NotNull(message = "审批状态不能为空")
    @TableField("approve_status")
    private Integer approveStatus;

    //审批时间
    @NotNull(message = "审批时间不能为空")
    @TableField("approve_time")
    private LocalDate approveTime;

    //审批备注
    @NotNull(message = "审批备注不能为空")
    @TableField("approve_remark")
    private String approveRemark;

    //创建时间
    @TableField("create_time")
    private LocalDateTime createTime; // 创建时间

    //更新时间
    @TableField("update_time")
    private LocalDateTime updateTime; // 更新时间
}
